import { Notification } from 'atelement'
import $http from '../utils/http'
const ALL_DATA = '/informationSystem/ALL_DATA' // 列表数据与变更详情数量
const MuaChangpage = '/informationSystem/MuaChangpage' // 分页Mua
const MuaChangeSize = '/informationSystem/MuaChangeSize' // 改变每一页条数Mua
const MuaChangeSearch = '/informationSystem/MuaChangeSearch' // 搜索Mua
const MuaSort = '/informationSystem/MuaSort' // 表格排序前提交MUA
const MuaChangeGetdata = '/informationSystem/MuaChangeGetdata' // 获取数据Mua
const MuaNewnum = '/informationSystem/MuaNewnum' // 获取同步数量提交到MUA

const returndata = '/informationSystem/returndata' // 详情
const MuaReturndata = '/informationSystem/MuaReturndata' // 详情Mua
const nodedata = '/informationSystem/nodedata' // 机构详情
const MuaNodedata = '/informationSystem/MuaNodedata' // 机构详情提交到MUA
const getinitadd = '/informationSystem/getinitadd' // 获取同步新增数据
const sortadd = '/informationSystem/sortadd' // 同步新增排序
const getinitedit = '/informationSystem/getinitedit' // 获取同步更改数据
const sortedit = '/informationSystem/sortedit' // 同步更改排序
const getinitdel = '/informationSystem/getinitdel'// 获取同步删除数据
const sortdel = '/informationSystem/sortdel' // 同步删除排序
const gethisadd = '/informationSystem/gethisadd' // 历史新增数据
const Muahischangepageadd = '/informationSystem/Muahischangepageadd' // 历史新增分页前提交MUA
const MuahischangePageSizeadd = '/informationSystem/MuahischangePageSizeadd' // 历史新增改变每页条数前提交Mua
const Muahissearchadd = '/informationSystem/Muahissearchadd' // 历史新增搜索前提交MUA
const MuahisSortadd = '/informationSystem/MuahisSortadd' // 历史新增排序前提交MUA
const gethisupdate = '/informationSystem/gethisupdate' // 历史更改数据
const Muahischangepageedit = '/informationSystem/Muahischangepageedit' // 历史更改分页前提交MUA
const MuahischangePageSizeedit = '/informationSystem/MuahischangePageSizeedit' // 历史更改改变每页条数前提交Mua
const Muahissearchedit = '/informationSystem/Muahissearchedit' // 历史更改搜索前提交MUA
const MuahisSortedit = '/informationSystem/MuahisSortedit' // 历史更改排序前提交MUA
const gethisdelete = '/informationSystem/gethisdelete' // 历史删除数据
const Muahischangepagedel = '/informationSystem/Muahischangepagedel' // 历史删除分页前提交MUA
const MuahischangePageSizedel = '/informationSystem/MuahischangePageSizedel' // 历史删除改变每页条数前提交Mua
const Muahissearchdel = '/informationSystem/Muahissearchdel' // 历史删除搜索前提交MUA
const MuahisSortdel = '/informationSystem/MuahisSortdel' // 历史删除排序前提交MUA
const deleteall = '/informationSystem/deleteall' // 清空同步
const CLEAR_DATA = 'informationSystem/CLEAR_DATA' // 销毁数据
const changeLoading = '/informationSystem/changeLoading'
export default {
  state: {
    fullscreenLoading: true,
    msg: [{}],
    num: [{}],
    node_msg: [{}],
    tableBox: {
      tableData: {
        'pagination': {
          'current': 1, // 当前页码
          'pageSize': 20// 当前页显示的数据条数
        },
        'search': {
          'value': '' // 需要模糊搜索的值（搜索框）
        },
        'sorter': {
          'field': 'ar_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [], /* 图表数据 */
      total: 0 /* Y条数 */
    },
    syn_add: {
      tableData: {
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [],
      total: 0
    },
    syn_edit: {
      tableData: {
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [],
      total: 0
    },
    syn_del: {
      tableData: {
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [],
      total: 0
    },
    history_add: {
      tableData: {
        'pagination': {
          'current': 1, // 当前页码
          'pageSize': 20// 当前页显示的数据条数
        },
        'search': {
          'value': '' // 需要模糊搜索的值（搜索框）
        },
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [], /* 图表数据 */
      total: 0 /* Y条数 */
    },
    history_edit: {
      tableData: {
        'pagination': {
          'current': 1, // 当前页码
          'pageSize': 20// 当前页显示的数据条数
        },
        'search': {
          'value': '' // 需要模糊搜索的值（搜索框）
        },
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [], /* 图表数据 */
      total: 0 /* Y条数 */
    },
    history_del: {
      tableData: {
        'pagination': {
          'current': 1, // 当前页码
          'pageSize': 20// 当前页显示的数据条数
        },
        'search': {
          'value': '' // 需要模糊搜索的值（搜索框）
        },
        'sorter': {
          'field': 'er_time', // 排序的字段
          'order': 'descend' // or "desc"升序还是降序
        }
      },
      table: [], /* 图表数据 */
      total: 0 /* Y条数 */
    }
  },
  actions: {
    // 获取主页面信息数据+变更条数
    [ALL_DATA] ({ state, dispatch, commit }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      state.fullscreenLoading = true
      if (obj.type === 'pagCur') {
        commit(MuaChangpage, obj.page)
      } else if (obj.type === 'pagSize') {
        commit(MuaChangeSize, obj.pageSizes)
      } else if (obj.type === 'search') {
        commit(MuaChangeSearch, { value: obj.value, currentPage: obj.currentPage })
      } else if (obj.type === 'sorter') {
        commit(MuaSort, { key: obj.key, value: obj.value })
      }
      const sat = {
        pagination: {
          'current': state.tableBox.tableData.pagination.current,
          'pageSize': state.tableBox.tableData.pagination.pageSize
        },
        search: {
          'value': state.tableBox.tableData.search.value
        },
        sorter: {
          'order': state.tableBox.tableData.sorter.order,
          'field': state.tableBox.tableData.sorter.field
        }
      }
      let p = []
      p[1] = $http.option('/api/information/showinfo', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(MuaChangeGetdata, data)
        }
      }
      ).catch(function (error) {
        console.log(error)
      })
      p[2] = $http.post('/api/information/new'
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(MuaNewnum, data)
        }
      }).catch(function (error) {
        console.log(error)
      })
      Promise.all(p).then(results => {
        state.fullscreenLoading = false
      })
    },
    // 详情返回数据
    [returndata] ({ state, commit }, item) {
      commit(changeLoading)
      $http.post('/api/information/more', { info_sys_id: item.info_sys_id }
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(MuaReturndata, { data: data[0], max: item.max })
        }
      }).catch(function (error) {
        console.log(error)
      })
    },
    // 机构详情
    [nodedata] ({ state, commit }, node_id) {
      $http.post('/api/website/getnodenamemsg', { node_id: node_id }
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(MuaNodedata, data)
        }
      }).catch(function (error) {
        console.log(error)
      })
    },
    // 获取同步新增数据,排序，筛选
    [getinitadd] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'sorter') {
        commit(sortadd, { key: obj.key, value: obj.value })
      }
      const sat = {
        sorter: {
          'order': state.syn_add.tableData.sorter.order,
          'field': state.syn_add.tableData.sorter.field
        }
      }
      commit(changeLoading)
      $http.option('/api/sync/information/new_list_add', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(getinitadd, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 获取同步更改数据,排序，筛选
    [getinitedit] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'sorter') {
        commit(sortedit, { key: obj.key, value: obj.value })
      }
      const sat = {
        sorter: {
          'order': state.syn_edit.tableData.sorter.order,
          'field': state.syn_edit.tableData.sorter.field
        }
      }
      commit(changeLoading)
      $http.option('/api/sync/information/new_list_edit', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(getinitedit, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 获取同步删除数据，排序，筛选
    [getinitdel] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'sorter') {
        commit(sortdel, { key: obj.key, value: obj.value })
      }
      const sat = {
        sorter: {
          'order': state.syn_del.tableData.sorter.order,
          'field': state.syn_del.tableData.sorter.field
        }
      }
      commit(changeLoading)
      $http.option('/api/sync/information/new_list_delete', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(getinitdel, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 获取历史新增数据
    [gethisadd] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'pagCur') {
        commit(Muahischangepageadd, obj.page)
      } else if (obj.type === 'pagSize') {
        commit(MuahischangePageSizeadd, obj.pageSizes)
      } else if (obj.type === 'search') {
        commit(Muahissearchadd, { value: obj.value, currentPage: obj.currentPage })
      } else if (obj.type === 'sorter') {
        commit(MuahisSortadd, { key: obj.key, value: obj.value })
      }
      const sat = {
        pagination: {
          'current': state.history_add.tableData.pagination.current,
          'pageSize': state.history_add.tableData.pagination.pageSize
        },
        search: {
          'value': state.history_add.tableData.search.value
        },
        sorter: {
          'order': state.history_add.tableData.sorter.order,
          'field': state.history_add.tableData.sorter.field
        }
      }
      $http.option('/api/sync/information/list_add', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(gethisadd, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 获取历史更改数据
    [gethisupdate] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'pagCur') {
        commit(Muahischangepageedit, obj.page)
      } else if (obj.type === 'pagSize') {
        commit(MuahischangePageSizeedit, obj.pageSizes)
      } else if (obj.type === 'search') {
        commit(Muahissearchedit, { value: obj.value, currentPage: obj.currentPage })
      } else if (obj.type === 'sorter') {
        commit(MuahisSortedit, { key: obj.key, value: obj.value })
      }
      const sat = {
        pagination: {
          'current': state.history_edit.tableData.pagination.current,
          'pageSize': state.history_edit.tableData.pagination.pageSize
        },
        search: {
          'value': state.history_edit.tableData.search.value
        },
        sorter: {
          'order': state.history_edit.tableData.sorter.order,
          'field': state.history_edit.tableData.sorter.field
        }
      }
      $http.option('/api/sync/information/list_update', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(gethisupdate, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 获取历史删除数据
    [gethisdelete] ({ commit, state, dispatch }, obj) {
      if (obj === undefined) {
        obj = 'type'
      }
      if (obj.type === 'pagCur') {
        commit(Muahischangepagedel, obj.page)
      } else if (obj.type === 'pagSize') {
        commit(MuahischangePageSizedel, obj.pageSizes)
      } else if (obj.type === 'search') {
        commit(Muahissearchdel, { value: obj.value, currentPage: obj.currentPage })
      } else if (obj.type === 'sorter') {
        commit(MuahisSortdel, { key: obj.key, value: obj.value })
      }
      const sat = {
        pagination: {
          'current': state.history_del.tableData.pagination.current,
          'pageSize': state.history_del.tableData.pagination.pageSize
        },
        search: {
          'value': state.history_del.tableData.search.value
        },
        sorter: {
          'order': state.history_del.tableData.sorter.order,
          'field': state.history_del.tableData.sorter.field
        }
      }
      $http.option('/api/sync/information/list_delete', sat
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          commit(gethisdelete, data)
          commit(changeLoading)
        }
      }).catch(function (err) {
        console.log(err)
      })
    },
    // 清空同步信息
    [deleteall] ({ state, commit, dispatch }) {
      $http.post('/api/sync/information/delete_list'
      ).then(({ status, data } = {}) => {
        if (status === 'success') {
          dispatch(getinitadd)
          dispatch(getinitedit)
          dispatch(getinitdel)
        }
      }).catch(function (err) {
        console.log(err)
      })
    }
  },
  mutations: {
    // 获取主页面信息“分页”
    [MuaChangpage] (state, page) {
      state.tableBox.tableData.pagination.current = page
    },
    // 获取主页面信息“改变每页条数”
    [MuaChangeSize] (state, pageSizes) {
      state.tableBox.tableData.pagination.pageSize = pageSizes
    },
    // 获取主页面信息“搜索”
    [MuaChangeSearch] (state, data) {
      state.tableBox.tableData.search.value = data.value
      state.tableBox.tableData.pagination.current = data.currentPage
    },
    // 获取主页面信息“排序”
    [MuaSort] (state, { key, value }) {
      state.tableBox.tableData.sorter.order = value
      state.tableBox.tableData.sorter.field = key
    },
    // 获取主页面信息“获取数据”
    [MuaChangeGetdata] (state, data) {
      state.tableBox.table = data.data
      state.tableBox.total = data.total
    },
    // 获取同步数量提交到MUA
    [MuaNewnum] (state, data) {
      state.num = data
    },
    // 基本信息详情
    [MuaReturndata] (state, { data, max }) {
      max(data)
      for (var i in data) {
        if (data[i] === null || data[i] === 'None') {
          data[i] = '-'
        }
      }
    },
    // 机构详情
    [MuaNodedata] (state, data) {
      state.node_msg = data
    },
    // 同步新增数据
    [getinitadd] (state, data) {
      state.syn_add.table = data.dataSource
      state.syn_add.total = data.total
    },
    // 同步新增排序
    [sortadd] (state, { key, value }) {
      state.syn_add.tableData.sorter.order = value
      state.syn_add.tableData.sorter.field = key
    },
    // 同步更改数据
    [getinitedit] (state, data) {
      state.syn_edit.table = data.dataSource
      state.syn_edit.total = data.total
    },
    // 同步更改排序
    [sortedit] (state, { key, value }) {
      state.syn_edit.tableData.sorter.order = value
      state.syn_edit.tableData.sorter.field = key
    },
    // 同步删除数据
    [getinitdel] (state, data) {
      state.syn_del.table = data.dataSource
      state.syn_del.total = data.total
    },
    // 同步删除排序
    [sortdel] (state, { key, value }) {
      state.syn_del.tableData.sorter.order = value
      state.syn_del.tableData.sorter.field = key
    },
    // 历史新增分页前提交MUA
    [Muahischangepageadd] (state, page) {
      state.history_add.tableData.pagination.current = page
    },
    // 历史新增改变每页条数前提交到MUA
    [MuahischangePageSizeadd] (state, pageSizes) {
      state.history_add.tableData.pagination.pageSize = pageSizes
    },
    // 历史新增搜索前提交到MUA
    [Muahissearchadd] (state, query) {
      state.history_add.tableData.search.value = query.value
      state.history_add.tableData.pagination.current = query.currentPage
    },
    // 历史新增表格排序前提交MUA
    [MuahisSortadd] (state, { key, value }) {
      state.history_add.tableData.sorter.order = value
      state.history_add.tableData.sorter.field = key
    },
    // 历史新增数据
    [gethisadd] (state, data) {
      state.history_add.table = data.dataSource
      state.history_add.total = data.total
    },
    // 历史更改分页前提交MUA
    [Muahischangepageedit] (state, page) {
      state.history_edit.tableData.pagination.current = page
    },
    // 历史更改改变每页条数前提交到MUA
    [MuahischangePageSizeedit] (state, pageSizes) {
      state.history_edit.tableData.pagination.pageSize = pageSizes
    },
    // 历史更改搜索前提交到MUA
    [Muahissearchedit] (state, query) {
      state.history_edit.tableData.search.value = query.value
      state.history_edit.tableData.pagination.current = query.currentPage
    },
    // 历史更改表格排序前提交MUA
    [MuahisSortedit] (state, { key, value }) {
      state.history_edit.tableData.sorter.order = value
      state.history_edit.tableData.sorter.field = key
    },
    // 历史更改数据
    [gethisupdate] (state, data) {
      state.history_edit.table = data.dataSource
      state.history_edit.total = data.total
    },
    // 历史删除分页前提交MUA
    [Muahischangepagedel] (state, page) {
      state.history_del.tableData.pagination.current = page
    },
    // 历史删除改变每页条数前提交到MUA
    [MuahischangePageSizedel] (state, pageSizes) {
      state.history_del.tableData.pagination.pageSize = pageSizes
    },
    // 历史删除搜索前提交到MUA
    [Muahissearchdel] (state, query) {
      state.history_del.tableData.search.value = query.value
      state.history_del.tableData.pagination.current = query.currentPage
    },
    // 历史删除表格排序前提交MUA
    [MuahisSortdel] (state, { key, value }) {
      state.history_del.tableData.sorter.order = value
      state.history_del.tableData.sorter.field = key
    },
    // 历史删除数据
    [gethisdelete] (state, data) {
      state.history_del.table = data.dataSource
      state.history_del.total = data.total
    },
    // 销毁数据
    [CLEAR_DATA] (state) {
      let clearState = {
        fullscreenLoading: true,
        msg: [{}],
        num: [{}],
        node_msg: [{}],
        tableBox: {
          tableData: {
            'pagination': {
              'current': 1, // 当前页码
              'pageSize': 20// 当前页显示的数据条数
            },
            'search': {
              'value': '' // 需要模糊搜索的值（搜索框）
            },
            'sorter': {
              'field': 'ar_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [], /* 图表数据 */
          total: 0 /* Y条数 */
        },
        syn_add: {
          tableData: {
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [],
          total: 0
        },
        syn_edit: {
          tableData: {
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [],
          total: 0
        },
        syn_del: {
          tableData: {
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [],
          total: 0
        },
        history_add: {
          tableData: {
            'pagination': {
              'current': 1, // 当前页码
              'pageSize': 20// 当前页显示的数据条数
            },
            'search': {
              'value': '' // 需要模糊搜索的值（搜索框）
            },
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [], /* 图表数据 */
          total: 0 /* Y条数 */
        },
        history_edit: {
          tableData: {
            'pagination': {
              'current': 1, // 当前页码
              'pageSize': 20// 当前页显示的数据条数
            },
            'search': {
              'value': '' // 需要模糊搜索的值（搜索框）
            },
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [], /* 图表数据 */
          total: 0 /* Y条数 */
        },
        history_del: {
          tableData: {
            'pagination': {
              'current': 1, // 当前页码
              'pageSize': 20// 当前页显示的数据条数
            },
            'search': {
              'value': '' // 需要模糊搜索的值（搜索框）
            },
            'sorter': {
              'field': 'er_time', // 排序的字段
              'order': 'descend' // or "desc"升序还是降序
            }
          },
          table: [], /* 图表数据 */
          total: 0 /* Y条数 */
        }
      }
      for (let [key, val] of Object.entries(clearState)) {
        state[key] = val
      }
    },
    // 改变loading
    [changeLoading] (state) {
      state.fullscreenLoading = !state.fullscreenLoading
    }
  }
}
